System and method for configuring a telephone

ABSTRACT

A method and system are provided for configuring a telephone (10). A connection (20) is formed between the telephone (10) and a telephone environment (60). A list of services offerable through the telephone environment is generated (100). A list of candidate procedures for establishing each listed service through the telephone environment is generated (102). At least one of the listed procedures is executed (104) for each listed service to determine whether the listed service is supported by the connection (20).

TECHNICAL FIELD OF THE INVENTION

This invention relates in general to communication systems and inparticular to a method and system for configuring a telephone.

BACKGROUND OF THE INVENTION

Typical business and residential telephone systems are limited in thearray of services which are offered to a telephone user. Thisshortcoming can be based on limitations (1) in the telephone instrumentitself or (2) in the switching network to which the telephone instrumentis connected. For example, some special services might not be supportedby the switching network's software or hardware.

Even if a special service is supported by the switching network'ssoftware and hardware, a user normally establishes and accesses thespecial service (1) by using one or more preprogrammed control functionkeys of the telephone instrument or (2) by entering a touchtone commandsequence through the telephone instrument's numeric keypad. Although acontrol function key usually is more convenient for the user than atouchtone command sequence, the telephone instrument might offer only afixed array of such control function keys for establishing specialservices.

Moreover, previous techniques typically fail to automatically configurea telephone to offer the user only those services which are actuallysupported by the switching network. Instead, under previous techniques,the telephone is manually configured. Each time a service is modified oradded to the system, the configuration is manually repeated.

Thus, a need has arisen for a method and system for configuring atelephone, in which a user establishes and accesses a special service byusing one or more control function keys of the telephone. Also, a needhas arisen for a method and system for configuring a telephone, in whichthe telephone offers a variable array of control function keys forestablishing special services. Further, a need has arisen for a methodand system for configuring a telephone, in which the telephone isautomatically configured to offer the user only those services which areactually supported by the switching network.

SUMMARY OF THE INVENTION

In a first aspect of a method and system for configuring a telephone, aconnection is formed between the telephone and a telephone environment.A list of services offerable through at least one type of telephoneenvironment is generated. A list of candidate procedures forestablishing each listed service through the telephone environment isgenerated. Ones of the listed procedures are executed to determinewhether each listed service is supported by the connection.

In a second aspect of a method and system for configuring a telephone,multiple lines supportable by the telephone are determined. A number ofthe lines supported by the connection are determined in response towhether the telephone environment is responsive to a respectivecondition of each line.

In a third aspect of a method and system for configuring a telephone, aconnection is formed through a telephone environment between thetelephone and a device. Information is communicated from the device tothe telephone. At least one function is provided on the telephone inresponse to the information, such that the telephone communicatesadditional information to the device in response to the function beingselected.

It is a technical advantage of the present invention that a userestablishes and accesses a special service by using one or more controlfunction keys of the telephone.

It is another technical advantage of the present invention that thetelephone offers a variable array of control function keys forestablishing special services.

It is a further technical advantage of the present invention that thetelephone is automatically configured to offer the user only thoseservices which are actually supported by the switching network.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention, and theadvantages thereof, reference is now made to the following descriptionstaken in conjunction with the accompanying drawings, in which:

FIGS. 1a-c illustrate an exemplary programmable telephone;

FIG. 2 is a block diagram of a network and switch environment;

FIG. 3 is a flow chart of a first technique for determining capabilityprofile information of a network and switch environment, according tothe preferred embodiment;

FIG. 4 is a flow chart of a second technique for determining capabilityprofile information of a network and switch environment, according tothe preferred embodiment;

FIG. 5 is a block diagram of a system implementing the second techniquefor determining capability profile information of a network and switchenvironment, according to the preferred embodiment;

FIG. 6 is a block diagram of a system implementing the first techniquefor determining capability profile information of a network and switchenvironment, according to the preferred embodiment; and

FIG. 7 is a block diagram of another system implementing a thirdtechnique for determining capability profile information of a networkand switch environment, according to the preferred embodiment.

DETAILED DESCRIPTION OF THE INVENTION

The preferred embodiment of the present invention and its advantages arebest understood by referring to FIGS. 1-4 of the drawings, like numeralsbeing used for like and corresponding parts of the various drawings.

FIG. 1a illustrates an exemplary programmable telephone, indicatedgenerally at 10, which is programmable for a variety of applications.Telephone 10 inputs and outputs audio signals through an associatedhandset 12. Telephone 10 includes a touch screen 14 over an LCD display.Touch screen 14 includes defined regions 16a-m which function assimulated buttons. Region 17 displays a telephone number associated withtelephone 10.

Telephone 10 further includes (1) a dual tone multi-frequency ("DTMF")signal generator and (2) speaker-independent speech recognitioncircuitry. Also, telephone 10 includes memory card circuitry for readingand writing to a removable memory card 18, such as a magnetic or opticalstorage card. Alternatively, telephone 10 can be connected to aperipheral device including such memory card circuitry.

In response to any of defined regions 16a-m being physically contacted,telephone 10 performs a specified function associated with thephysically contacted region. As shown in FIG. 1a, defined regions 16a-ldisplay twelve standard buttons of a traditional telephone. Telephone 10outputs a DTMF signal on a network line 20 either in response to theuser touching any of defined regions 16a-l, or in response to a digit,the word "star" or the word "pound" orally specified by the user's voiceinto handset 12. A region 21 displays telephone number digits, the staror the pound sign as associated DTMF signals are output by telephone 10.

Instead of orally specifying a digit, the star or the pound sign theuser can engage in "spoken speed dialing" where the user specifies areceiving site by orally stating a phrase (e.g. "Call Home") intohandset 12. In response to such a phrase, telephone 10 outputs a seriesof DTMF signals on network line 20. Such DTMF signals correspond todigits of the telephone number associated with the specified receivingsite (e.g. "Home").

Accordingly, telephone 10 stores a directory of telephone numbers.Defined region 16m on touch screen 14 is defined as a "directory"button. In response to the user touching defined region 16m, the displayof touch screen 14 changes to that shown in FIG. 1b. As shown in FIG.1b, touch screen 14 includes regions 22, 24, 26a-b, 28a-c, 30a-b, 32, 34and 36.

In fields 38a-g, region 22 displays a directory of names and associatedtelephone numbers stored by telephone 10, indexed under the highlightedletter "J" in region 32. Region 24 displays information from ahighlighted field 38b of region 22. The user can change the highlightedfield of region 22 to be any of fields 38a-g by selectively touchingregions 26a-b in order to scroll through fields 38a-g. Alternatively,the user can change the highlighted field by directly touching aselected one of fields 38a-g in region 22.

Similarly, the user can change the highlighted letter in region 32 byselectively touching regions 30a-b in order to scroll through lettersA-Z displayed in region 32. Alternatively, the user can change thehighlighted letter in region 32 by directly touching a selected one ofletters A-Z displayed in region 32. As another letter is highlighted,the display of names and associated telephone numbers in region 22 isupdated to display the names and associated telephone numbers indexedunder the highlighted letter.

By touching region 34 ("Dial"), the user dials the telephone numberdisplayed in the highlighted field of region 22. By touching region 28c("Erase Name"), the user erases the name and associated telephone numberin the highlighted field of region 22. By touching region 28a ("addName"), the user can add a new name and associated telephone number toregion 22 for storage in telephone 10. Similarly, by touching region 28b("Change Name"), the user can change the name or associated telephonenumber in the highlighted field of region 22.

When the user touches either region 28a ("Add Name") or region 28b("Change Name"), the display of touch screen 14 changes to that shown inFIG. 1c. As shown in FIG. 1c, touch screen 14 includes a region,indicated generally at 40, displaying a typewriter-like keyboard.

If the user touches a region 42 ("Name") of touch screen 14, the usercan use region 40 to enter a new name into telephone 10, or to edit thename earlier highlighted in region 22 when the user touched region 28b("Change Name") of FIG. 1b.

If the user touches a region 44 ("Phone Number"), the user can useregion 40 to enter a new telephone number into telephone 10, or to editthe telephone number earlier highlighted in region 22 when the usertouched region 28b ("Change Name") of FIG. 1b.

If the user touches a region 46 ("Record Name"), telephone 10 records aphrase orally stated by the user into handset 12. As directed by theuser, telephone 10 associates the recorded phrase with a storedtelephone number. When the user subsequently engages in "spoken speeddialing", the user can specify the stored telephone number by orallyrestating the phrase into handset 12.

Telephone 10 is able to read and write stored information to removablememory card 18. The stored information includes directory structure andvoice templates. Accordingly, if the user touches a region 48 ("ReadCard"), telephone 10 reads and stores information from removable memorycard 18. Similarly, if the user touches a region 50 ("Write Card"),telephone 10 writes its stored information to removable memory card 18.Then, memory card 18 can be removed from telephone 10 and reinsertedinto a different telephone in order to transfer the stored information.

When the user touches a region 52 ("Go Back"), the display of touchscreen 14 returns to that shown in FIG. 1b. Such a "directory"application, as discussed hereinabove in connection with FIGS. 1a-c, isonly one example of many functions performable by telephone 10. Userscan program various other types of functions to be performed bytelephone 10, with each programmed function having an associateduser-defined region displayed on touch screen 14.

FIG. 2 is a block diagram of a network and switch environment("telephone environment"), indicated generally at 60, including a switch62 and a network 64. Switch 62 and network 64 are included within acommercial telephone service company system, but alternatively can beincluded within a Private Branch Exchange ("PBX"). Network and switchenvironment 60 interacts with one or more telephones, such as telephone10 of FIGS. 1a-c.

As shown in FIG. 2, switch 62 is connected to telephone 10 throughnetwork line 20, to a telephone 66 through a network line 68, and to atelephone 70 through a network line 72. Accordingly, telephones 10, 66and 70 are coupled through switch 62 to network 64. Similar to telephone10, each of telephones 66 and 70 includes respective memory cardcircuitry for reading and writing to removable memory cards 18, 74 and76. Any of removable memory cards 18, 74 and 76, are insertable into anyof telephones 10, 66 and 70. The system of the preferred embodimentincludes the interconnected combination of network and switchenvironment 60, and at least one of telephones 10, 66 and 70.

Telephone 10 is representative of telephones 66 and 70. In a significantaspect of the preferred embodiment, telephone 10 is configurable tomatch the capabilities and limitations of network and switch environment60. Accordingly, telephone 10 advantageously adapts to the capabilitiesand limitations of network and switch environment 60 in order to achievesubstantially optimal functionality.

The base capabilities of telephone 10 are supported by informationstored in a memory of telephone 10, together with information stored onmemory cards 18, 74 and 76. If telephone 10 lacks a priori knowledge ofnetwork and switch environment 60, then telephone 10 is subject tocomplete or partial reconfiguration upon (1) insertion or removal of amemory card into telephone 10 or (2) initial connection or reconnectionof telephone 10 to switch 62. Telephone 10 detects such situations andself-initiates its reconfiguration. Although telephone 10 is alsosubject to reconfiguration upon a power-on cycle of telephone 10,telephone 10 preferably memorizes its configuration between power-oncycles.

Moreover, telephone 10 is subject to reconfiguration upon initialprogramming or reprogramming of switch 62 or of network 64, so thattelephone 10 effectively adapts to the service mix of capabilities andlimitations of network and switch environment 60. Network and switchenvironment 60 (including switch 62 and network 64) initiates thereconfiguration of telephone 10 by notifying telephone 10 in the eventof such programming.

Although telephone 10 is comprehensively programmable, network andswitch environment 60 provides only limited services that can be offeredthrough telephone 10. This limitation is a function of network/switchhardware and of switch software. Moreover, even if network and switchenvironment 60 provides a particular service, network and switchenvironment 60 might not authorize telephone 10 to access the particularservice. Services offered through telephone 10 might also be limited bya lack of standardized procedures for accessing the services of networkand switch environment 60, such as where the procedures vary accordingto different telephone service vendors.

If standardized procedures are available, such procedures are used inthe system of the preferred embodiment for communicating betweentelephone 10 and network and switch environment 60. Using suchstandardized procedures, telephone 10 electronically exchangescapability profile information with network and switch environment 60(including switch 62 and network 64) for establishing availableservices. Such an exchange of information can be initiated either bytelephone 10 or by network and switch environment 60. After exchangingcapability profile information, telephone 10 stores the establishedcapability profile. In situations discussed hereinabove where telephone10 is subject to reconfiguration, telephone 10 again exchangescapability profile information with network and switch environment 60 inorder to update the stored capability profile.

Moreover, if standardized procedures are available for communicatingbetween telephones 10, 66 and 70, then for example telephone 66 cancommunicate information to telephone 10 for display on touch screen 14.In response to such information displayed on touch screen 14 oftelephone 10, the user can touch one or more defined regions of touchscreen 14 in order to communicate information to telephone 66. Such anexchange of information can occur between telephone 10 and any othertype of device connected to switch 62. For example, network line 72 canbe connected to a computer instead of telephone 70.

If standardized procedures are not available for accessing the servicesof network and switch environment 60 according to different telephoneservice vendors or switch hardware/software vendors, then the system ofthe preferred embodiment supports user-interactive procedures in whichthe user specifies the vendor to telephone 10. After learning of thespecified vendor, telephone 10 reads information either from its ownmemory or from removable memory card 18, in order to determinevendor-specific procedures and capability profile information forestablishing available services. If the vendor changes, then the userspecifies the new vendor to telephone 10. If the vendor-specificprocedures change, or if the vendor's capability profile informationchanges, then the user either updates the memory of telephone 10 orinserts an updated version of removable memory card 18.

Although the system of the preferred embodiment supportsuser-interactive procedures, such user-interactive procedures slightlyinconvenience the user and therefore are not preferred. Significantly,vendor-independent techniques are advantageously used in the system ofthe preferred embodiment for communicating between telephone 10 andnetwork and switch environment 60. According to such vendor-independenttechniques of the preferred embodiment, it is unnecessary for the userto specify information to telephone 10 concerning vendors,vendor-specific procedures, or capability profile information.

Using vendor-independent techniques of the preferred embodiment,telephone 10 electronically "explores" network and switch environment 60to determine capability profile information for establishing availableservices. Telephone 10 performs such a determination in situationsdiscussed hereinabove where telephone 10 self-initiates itsreconfiguration. After determining capability profile information,telephone 10 stores the established capability profile. In situationsdiscussed hereinabove where telephone 10 self-initiates itsreconfiguration, telephone 10 again electronically "explores" networkand switch environment 60 in order to update the stored capabilityprofile.

FIG. 3 is a flow chart of a first technique of telephone 10 fordetermining capability profile information, according to the preferredembodiment. Telephone 10 has a maximum number of lines that aresupportable by a connection to network and switch environment 60.According to the technique of FIG. 3, telephone 10 determines which ofits maximum number of lines are actually supported by the connection tonetwork and switch environment 60.

Execution begins at a step 80, where telephone 10 initializes a presentline to be line #1. At step 82, telephone 10 sets the present lineoff-hook. At decision block 84, telephone 10 determines whether a dialtone is detected in response to the present line being off-hook. If adial tone is detected, then at step 86 telephone 10 stores an indicationthat the present line is supported by the connection to network andswitch environment 60. Execution then continues to decision block 88.

If a dial tone is not detected at decision block 84, then at decisionblock 88 telephone 10 determines whether the present line equals themaximum number of lines supportable by a connection to network andswitch environment 60. If not, then step 90 increments the present linenumber, and execution returns to step 82.

If at decision block 88 telephone 10 determines that the present lineequals the maximum number of lines, then decision block 92 determineswhether any lines are supported by the connection to network and switchenvironment 60 (in response to the indications stored at step 86). Ifyes, then at step 94 telephone 10 sets up for operation on all thesupported lines, such that touch screen 14 of telephone 10 displays foreach supported line an associated region (e.g. a region labelled as"Line #3") for the user to touch in order to select the supported line.If no lines are supported by the connection to network and switchenvironment 60, then at step 96 telephone 10 notifies the user to checkthe connection to network and switch environment 60.

FIG. 4 is a flow chart of a second technique of telephone 10 fordetermining capability profile information, according to the preferredembodiment. Telephone 10 comprehensively determines capability profileinformation by using the technique of FIG. 4 together with the techniqueof FIG. 3. For determining capability profile information, telephone 10stores (1) a list of services possibly offered through network andswitch environment 60 and (2) a list of candidate procedures forestablishing each listed service.

For example, the list of offerable services includes camp-on, callforwarding, transfer, conference calls, call waiting, and call pickup.In the list of candidate procedures, telephone 10 is programmed to testa variety of control standards appropriate for different PBXmanufacturers and different service vendors. For example, one vendormight support the camp-on service in response to receiving the commandsequence FLASH#1 from telephone 10. Another vendor might require adifferent command sequence. Moreover, network responses to such commandsequences might vary from one vendor to another. Advantageously,telephone 10 is programmed to support a wide range of expected interfacestandards.

Using the stored lists (i.e., list of offerable services, and list ofcandidate procedures), telephone 10 determines capability profileinformation by sequentially attempting to establish each possiblyavailable service through network and switch environment 60, and by thenmonitoring the response through network and switch environment 60 todetermine whether the service is supported by the connection to networkand switch environment 60.

Accordingly in FIG. 4, execution begins at a step 100, where telephone10 initializes a present service to be the first service in the list ofpossibly available services. At step 102, telephone 10 initializes apresent procedure to be the first procedure in the list of possibleprocedures for establishing the present service. At step 104, telephone10 communicates with network and switch environment 60 in order toexecute the present procedure.

At decision block 106, telephone 10 determines whether the presentservice is established. For example, telephone 10 is able to monitornetwork line 20 either (1) for a fast busy response from network andswitch environment 60 indicating that the service is not available; or(2) for a recorded announcement indicating that the service isavailable. For a service involving multiple lines (such as camp-on, callforwarding, transfer, conference calls, call waiting, and call pickup),telephone 10 tests the service's functionality at decision block 106 inorder to determine whether the service is properly established.

Accordingly, if telephone 10 has a requisite number of lines supportedby the connection to network and switch environment 60, then telephone10 autonomously tests the service's functionality at decision block 106.For example, in testing the functionality of camp-on service, telephone10 sets its own Line #1 off-hook. Then, telephone 10 uses its own Line#2 to automatically call its own Line #1. In response to the busy signalresulting from Line #1 being off-hook, telephone 10 returns Line #2 toon-hook. Telephone 10 then returns Line #1 to on-hook. After returningLine #1 to on-hook, telephone 10 determines whether camp-on service isfunctional by monitoring whether network and switch environment 60 ringsLine #2.

Similarly, in testing the functionality of call waiting service,telephone 10 uses its own Line #2 to automatically call its own Line #1.Telephone 10 then uses its own Line #3 to automatically call Line #1.After using Line #3 to call Line #1, telephone 10 determines whethercall waiting service is functional by monitoring whether network andswitch environment 60 provides a call waiting indication to Line #1.Telephone 10 likewise uses three lines to autonomously test thefunctionality of other services such as call forwarding, transfer,conference calls, and call pickup.

If telephone 10 does not have the requisite number of lines forautonomously testing a particular service's functionality, thentelephone 10 communicates with one or more other telephones (such astelephones 66 and 70 of FIG. 2) in order to test the particularservice's functionality at decision block 106. For example, if telephone10 has a line (Line #1), if telephone 66 has a line (Line #2), and iftelephone 70 has a line (Line #3), then telephones 10, 66 and 70,together are sufficient to test the functionality of call waitingservice within network and switch environment 60. In this example,telephone 10 (Line #1) automatically calls telephone 66 (Line #2). Inresponse to a command sequence from telephone 10, telephone 66 starts aninternal timer. The command sequence notifies telephone 66 concerningthe type of service being tested. After disconnecting from telephone 66,telephone 10 (Line #1) automatically calls telephone 70 (Line #3). Inresponse to a command sequence from telephone 10, telephone 70 starts aninternal timer which is set to expire after the internal timer oftelephone 66 expires. Telephone 10 then disconnects from telephone 70.

After the internal timer of telephone 66 expires, telephone 66 (Line #2)automatically calls telephone 10 (Line #1). Later, after the internaltimer of telephone 70 expires, telephone 70 (Line #3) automaticallycalls telephone 10 (Line #1). Since telephone 10 knows when the internaltimer of telephone 70 is set to expire (and therefore when telephone 70is set to call telephone 10), telephone 10 (Line #1) determines whethercall waiting service is functional by monitoring whether network andswitch environment 60 provides a call waiting indication after theinternal timer of telephone 70 is set to expire. Telephone 10 likewisecoordinates with telephones 66 and 70 to test the functionality of otherservices such as call forwarding, transfer, conference calls, callpickup, and camp-on.

If telephone 10 determines at decision block 106 that the presentservice is not established, then telephone 10 determines at decisionblock 108 whether more procedures are included in the list of possibleprocedures. If more procedures are included, then at step 110 telephone10 sets the present procedure to be the next procedure in the list ofpossible procedures. Execution then returns to step 104.

If telephone 10 determines at decision block 106 that the presentservice is established, then at step 112 telephone 10 sets up foroperation of the present service, such that touch screen 14 of telephone10 displays for the present service an associated region (e.g. a regionlabelled as "Camp-On") for the user to touch in order to select thepresent service. Execution then continues to decision block 114.

If telephone 10 determines at decision block 108 that more proceduresare not included in the list of possible procedures, then telephone 10determines at decision block 114 whether more services are included inthe list of possibly available services. If yes, then at step 116telephone 10 sets the present service to be the next service in the listof possibly available services. Execution then returns to step 102. Iftelephone 10 determines at decision block 114 that more services are notincluded in the list of possibly available services, then executionends.

Accordingly, telephone 10 uses the technique of FIG. 4 to determineavailability of specific network features such as CLASS or CENTREXservices. Although such a service is supportable in response to auser-specified command sequence (e.g. "*60"), telephone 10 simplifiesthe user interface by displaying a region (e.g. a region labelled as"Call Block") on touch screen 14 for the user to touch in order toselect the service.

FIG. 5 illustrates a block diagram of a first system which determinescapability profile information of network and switch environment 60. Thefirst system includes connection forming circuitry 200, executingcircuitry 210, first generating circuitry 220, second generatingcircuitry 230 and displaying circuitry 240. The connection formingcircuitry 200 forms a connection between the programmable telephone 10and the network and switch environment 60. The first generatingcircuitry 220 generates a list of services offerable through varioustelephone environments. The second generating circuitry 230 generates alist of candidate procedures for implementing the services listed by thefirst generating circuitry 220. The executing circuitry 210 executes thelist of candidate procedures to determine which of the list of servicesare supported by the connection. The first system also includesdisplaying circuitry 240 for displaying a representation of eachsupported service on touch screen 14 of telephone 10.

FIG. 6 illustrates a block diagram of a second system for determiningcapability profile information of network and switch environment 60. Thesystem of FIG. 6 includes connection forming circuitry 200, firstdetermining circuitry 250, second determining circuitry 260 anddisplaying circuitry 240. The first determining circuitry 200 determinesthe number of lines supportable by telephone 10. The second determiningcircuitry 260 then determines how many of the lines that are supportableby telephone 10 are actually supported by the connection. Finally, thedisplaying circuitry 240 displays a representation of each linesupported by both telephone 10 and by the connection on touch screen 14of telephone 10.

FIG. 7 illustrates a block diagram of a third system for determiningcapability profile information of network and switch environment 60. Thesystem of FIG. 7 includes connection forming circuitry 200,communicating circuitry 310 and function providing circuitry 320. Theconnection circuitry 200 is for forming a connection through the networkand switch environment 60 between the telephone 10 and a device (notshown). The third system also includes communication circuitry forcommunicating information between the telephone 10 and the device. Thethird system further includes function providing circuitry 320 forproviding functions on the telephone 10 in response to informationcommunicated between the telephone 10 and the device. The functionproviding circuitry 320 also displays a representation of each functionon the touch screen 14 of telephone 10.

Although the present invention and its advantages have been described indetail, it should be understood that various changes, substitutions andalterations can be made herein without departing from the spirit andscope of the invention as defined by the appended claims.

What is claimed is:
 1. A method of configuring a programmable telephone,comprising the steps of:forming a connection between the programmabletelephone and a telephone environment; generating a list of a pluralityof services offerable through said telephone environment; generating alist of a plurality of candidate procedures for establishing each ofsaid plurality of services through said telephone environment; executingat least one of said plurality of candidate procedures for establishingeach of said plurality of services to determine whether each of saidplurality of services is supported by said connection to generate asupported service; and displaying a representation of said supportedservice on a screen of said programmable telephone.
 2. The method ofclaim 1, wherein said step of forming comprises the step of forming saidconnection between the programmable telephone and said telephoneenvironment comprising a switch and a network.
 3. The method of claim 1,wherein said step of forming comprises the step of forming saidconnection between the programmable telephone and said telephoneenvironment of a commercial telephone service company system.
 4. Themethod of claim 1, wherein said step of forming comprises the step offorming said connection between the programmable telephone and saidtelephone environment of a private branch exchange system.
 5. The methodof claim 1, wherein said step of executing comprises the step ofmonitoring a response of said telephone environment in response toexecuting at least one of said plurality of candidate procedures todetermine whether at least one of said plurality of services issupported by said connection.
 6. The method of claim 1, wherein saidstep of executing comprises the step of testing a functionality of atleast one of said plurality of services to determine whether said one ofsaid plurality of services is supported by said connection.
 7. Themethod of claim 1, wherein the method further comprises the step ofselecting said supported service by touching said representation of saidsupported service on said screen of the programmable telephone.
 8. Themethod of claim 1, wherein the method further comprises the step ofrepeating said step of executing in response to repeating said step offorming said connection.
 9. The method of claim 1, wherein the methodfurther comprises the step of notifying said programmable telephone inresponse to a change in said telephone environment.
 10. The method ofclaim 9, wherein the method further comprises the step of repeating saidstep of executing in response to said change.